<?php
/**
 * utilUipackDriver
 *
 *
 * @package     util
 * @subpackage  Uipack
 * @author      Platform Team
 */

class utilUipackDriver
{
    /**
     * 플러그인 호출 메소드의 접두어
     * @var string
     */
    const PREFIX_PLUGIN = 'plugin';

    /**
     * 드라이버 객체
     * @var utilUipackDriver[Driver명]
     */
    private $Driver;

    /**
     * 생성자
     *
     * @param $Driver
     */
    public function __construct($Driver)
    {
        $this->Driver = $Driver;
    }

    /**
     * 드라이버내 플러그인 메소드 호출
     *
     * @param string $sName    (플러그인명)
     * @param mixed $mParam   (플러그인 메소드에 넘겨줄 파라미터)
     * @return boolean
     */
    public function plugin($sName, $mParam=null)
    {
        $sMethod = self::PREFIX_PLUGIN . $sName;

        if (!method_exists($this->Driver, $sMethod)) return false;

        $this->Driver->$sMethod($mParam);

        return true;
    }
}